#include "types.h" 
#include "wl_def.h"

fixed finetangent[FINEANGLES/4] = { 
57, 171, 285, 
400, 514, 629, 
743, 857, 972, 
1086, 1201, 1315, 
1430, 1544, 1658, 
1773, 1887, 2002, 
2116, 2231, 2345, 
2460, 2574, 2689, 
2804, 2918, 3033, 
3147, 3262, 3377, 
3491, 3606, 3721, 
3836, 3950, 4065, 
4180, 4295, 4410, 
4525, 4640, 4755, 
4870, 4985, 5100, 
5215, 5330, 5445, 
5560, 5676, 5791, 
5906, 6021, 6137, 
6252, 6368, 6483, 
6599, 6714, 6830, 
6945, 7061, 7177, 
7293, 7408, 7524, 
7640, 7756, 7872, 
7988, 8104, 8221, 
8337, 8453, 8569, 
8686, 8802, 8919, 
9035, 9152, 9268, 
9385, 9502, 9619, 
9735, 9852, 9969, 
10086, 10204, 10321, 
10438, 10555, 10673, 
10790, 10908, 11025, 
11143, 11261, 11378, 
11496, 11614, 11732, 
11850, 11968, 12087, 
12205, 12323, 12442, 
12560, 12679, 12798, 
12917, 13035, 13154, 
13273, 13393, 13512, 
13631, 13750, 13870, 
13989, 14109, 14229, 
14349, 14468, 14588, 
14709, 14829, 14949, 
15069, 15190, 15311, 
15431, 15552, 15673, 
15794, 15915, 16036, 
16157, 16279, 16400, 
16522, 16644, 16765, 
16887, 17009, 17131, 
17254, 17376, 17499, 
17621, 17744, 17867, 
17990, 18113, 18236, 
18359, 18483, 18606, 
18730, 18854, 18977, 
19102, 19226, 19350, 
19474, 19599, 19724, 
19848, 19973, 20098, 
20224, 20349, 20474, 
20600, 20726, 20852, 
20978, 21104, 21230, 
21357, 21483, 21610, 
21737, 21864, 21991, 
22118, 22246, 22374, 
22501, 22629, 22757, 
22886, 23014, 23143, 
23271, 23400, 23529, 
23659, 23788, 23917, 
24047, 24177, 24307, 
24437, 24568, 24698, 
24829, 24960, 25091, 
25222, 25353, 25485, 
25617, 25749, 25881, 
26013, 26146, 26278, 
26411, 26544, 26678, 
26811, 26945, 27078, 
27212, 27347, 27481, 
27616, 27750, 27885, 
28021, 28156, 28292, 
28427, 28563, 28700, 
28836, 28973, 29110, 
29247, 29384, 29521, 
29659, 29797, 29935, 
30073, 30212, 30351, 
30490, 30629, 30769, 
30908, 31048, 31188, 
31329, 31469, 31610, 
31751, 31893, 32034, 
32176, 32318, 32461, 
32603, 32746, 32889, 
33032, 33176, 33320, 
33464, 33608, 33753, 
33898, 34043, 34188, 
34334, 34480, 34626, 
34772, 34919, 35066, 
35213, 35361, 35509, 
35657, 35805, 35954, 
36103, 36252, 36401, 
36551, 36701, 36852, 
37003, 37154, 37305, 
37456, 37608, 37761, 
37913, 38066, 38219, 
38372, 38526, 38680, 
38835, 38989, 39144, 
39300, 39455, 39611, 
39768, 39924, 40081, 
40239, 40396, 40554, 
40713, 40871, 41031, 
41190, 41350, 41510, 
41670, 41831, 41992, 
42154, 42316, 42478, 
42640, 42803, 42967, 
43131, 43295, 43459, 
43624, 43789, 43955, 
44121, 44287, 44454, 
44621, 44789, 44957, 
45125, 45294, 45463, 
45633, 45803, 45974, 
46144, 46316, 46487, 
46660, 46832, 47005, 
47179, 47353, 47527, 
47702, 47877, 48052, 
48229, 48405, 48582, 
48760, 48938, 49116, 
49295, 49474, 49654, 
49834, 50015, 50196, 
50378, 50560, 50743, 
50926, 51110, 51294, 
51479, 51664, 51850, 
52036, 52223, 52410, 
52598, 52786, 52975, 
53164, 53354, 53545, 
53736, 53927, 54119, 
54312, 54505, 54699, 
54893, 55088, 55284, 
55480, 55676, 55874, 
56072, 56270, 56469, 
56669, 56869, 57070, 
57271, 57473, 57676, 
57879, 58083, 58287, 
58493, 58698, 58905, 
59112, 59320, 59528, 
59737, 59947, 60157, 
60369, 60580, 60793, 
61006, 61220, 61434, 
61650, 61866, 62082, 
62300, 62518, 62737, 
62956, 63176, 63397, 
63619, 63842, 64065, 
64289, 64514, 64740, 
64966, 65193, 65421, 
65650, 65880, 66110, 
66341, 66573, 66806, 
67040, 67274, 67509, 
67746, 67983, 68221, 
68459, 68699, 68939, 
69181, 69423, 69666, 
69910, 70155, 70401, 
70648, 70896, 71145, 
71394, 71645, 71896, 
72149, 72403, 72657, 
72912, 73169, 73426, 
73685, 73944, 74205, 
74466, 74729, 74993, 
75257, 75523, 75790, 
76058, 76327, 76597, 
76868, 77140, 77414, 
77688, 77964, 78241, 
78519, 78798, 79078, 
79360, 79643, 79926, 
80212, 80498, 80785, 
81074, 81364, 81656, 
81948, 82242, 82537, 
82834, 83132, 83431, 
83731, 84033, 84336, 
84640, 84946, 85254, 
85562, 85872, 86184, 
86497, 86811, 87127, 
87444, 87763, 88083, 
88405, 88728, 89053, 
89379, 89707, 90037, 
90368, 90700, 91035, 
91371, 91708, 92047, 
92388, 92731, 93075, 
93421, 93769, 94118, 
94469, 94822, 95177, 
95533, 95892, 96252, 
96614, 96978, 97344, 
97711, 98081, 98453, 
98826, 99202, 99579, 
99959, 100340, 100724, 
101109, 101497, 101887, 
102279, 102673, 103069, 
103467, 103868, 104271, 
104676, 105083, 105493, 
105905, 106319, 106735, 
107154, 107576, 107999, 
108426, 108854, 109286, 
109719, 110156, 110594, 
111036, 111480, 111927, 
112376, 112828, 113283, 
113740, 114201, 114664, 
115130, 115599, 116070, 
116545, 117022, 117503, 
117987, 118473, 118963, 
119456, 119952, 120451, 
120953, 121459, 121968, 
122480, 122996, 123515, 
124037, 124563, 125092, 
125625, 126162, 126702, 
127246, 127793, 128344, 
128899, 129458, 130021, 
130587, 131158, 131732, 
132311, 132893, 133480, 
134071, 134666, 135266, 
135870, 136478, 137091, 
137708, 138329, 138956, 
139587, 140222, 140863, 
141508, 142158, 142813, 
143473, 144138, 144809, 
145484, 146165, 146851, 
147542, 148239, 148941, 
149649, 150363, 151082, 
151808, 152539, 153276, 
154019, 154768, 155523, 
156285, 157053, 157828, 
158609, 159396, 160191, 
160992, 161800, 162615, 
163437, 164267, 165103, 
165948, 166799, 167658, 
168525, 169400, 170282, 
171173, 172072, 172979, 
173894, 174818, 175751, 
176692, 177643, 178602, 
179570, 180548, 181536, 
182532, 183539, 184555, 
185582, 186619, 187666, 
188723, 189792, 190871, 
191961, 193062, 194175, 
195299, 196435, 197584, 
198744, 199916, 201101, 
202299, 203510, 204734, 
205971, 207222, 208487, 
209766, 211060, 212368, 
213691, 215029, 216383, 
217752, 219137, 220538, 
221956, 223391, 224843, 
226313, 227800, 229306, 
230830, 232373, 233935, 
235516, 237118, 238740, 
240383, 242047, 243732, 
245440, 247170, 248923, 
250699, 252499, 254324, 
256173, 258048, 259949, 
261876, 263831, 265813, 
267823, 269862, 271931, 
274030, 276160, 278321, 
280515, 282741, 285002, 
287297, 289627, 291994, 
294397, 296839, 299320, 
301840, 304401, 307005, 
309651, 312341, 315076, 
317858, 320687, 323564, 
326492, 329471, 332503, 
335589, 338731, 341930, 
345188, 348506, 351886, 
355330, 358841, 362418, 
366066, 369785, 373579, 
377448, 381397, 385426, 
389539, 393738, 398026, 
402406, 406880, 411453, 
416128, 420906, 425794, 
430793, 435909, 441144, 
446504, 451993, 457616, 
463378, 469284, 475339, 
481549, 487921, 494460, 
501174, 508070, 515155, 
522436, 529924, 537626, 
545551, 553710, 562114, 
570773, 579699, 588905, 
598404, 608212, 618342, 
628811, 639637, 650838, 
662434, 674447, 686899, 
699816, 713223, 727149, 
741625, 756684, 772363, 
788701, 805739, 823525, 
842108, 861544, 881893, 
903221, 925600, 949110, 
973839, 999886, 1027357, 
1056374, 1087071, 1119598, 
1154125, 1190842, 1229963, 
1271734, 1316434, 1364382, 
1415946, 1471551, 1531692, 
1596949, 1668002, 1745662, 
1830894, 1924864, 2028989, 
2145010, 2275089, 2421948, 
2589058, 2780919, 3003472, 
3264723, 3575729, 3952202, 
4417248, 5006295, 5776577, 
6826947, 8344131, 10728256, 
15019650, 25032852, 75098708, 
}; 
 
fixed sintable[ANGLES+ANGLES/4] = { 
0, 1143, 2287, 
3429, 4571, 5711, 
6850, 7986, 9120, 
10252, 11380, 12504, 
13625, 14742, 15854, 
16961, 18064, 19160, 
20251, 21336, 22414, 
23486, 24550, 25606, 
26655, 27696, 28729, 
29752, 30767, 31772, 
32767, 33753, 34728, 
35693, 36647, 37589, 
38521, 39440, 40347, 
41243, 42125, 42995, 
43852, 44695, 45525, 
46340, 47142, 47930, 
48702, 49460, 50203, 
50931, 51643, 52339, 
53019, 53683, 54331, 
54963, 55577, 56175, 
56755, 57319, 57864, 
58393, 58903, 59395, 
59870, 60326, 60763, 
61183, 61583, 61965, 
62328, 62672, 62997, 
63302, 63589, 63856, 
64103, 64331, 64540, 
64729, 64898, 65047, 
65176, 65286, 65376, 
65446, 65496, 65526, 
65536, 65526, 65496, 
65446, 65376, 65286, 
65176, 65047, 64898, 
64729, 64540, 64331, 
64103, 63856, 63589, 
63302, 62997, 62672, 
62328, 61965, 61583, 
61183, 60763, 60326, 
59870, 59395, 58903, 
58393, 57864, 57319, 
56755, 56175, 55577, 
54963, 54331, 53683, 
53019, 52339, 51643, 
50931, 50203, 49460, 
48702, 47930, 47142, 
46340, 45525, 44695, 
43852, 42995, 42125, 
41243, 40347, 39440, 
38521, 37589, 36647, 
35693, 34728, 33753, 
32767, 31772, 30767, 
29752, 28729, 27696, 
26655, 25606, 24550, 
23486, 22414, 21336, 
20251, 19160, 18064, 
16961, 15854, 14742, 
13625, 12504, 11380, 
10252, 9120, 7986, 
6850, 5711, 4571, 
3429, 2287, 1143, 
0, -1143, -2287, 
-3429, -4571, -5711, 
-6850, -7986, -9120, 
-10252, -11380, -12504, 
-13625, -14742, -15854, 
-16961, -18064, -19160, 
-20251, -21336, -22414, 
-23486, -24550, -25606, 
-26655, -27696, -28729, 
-29752, -30767, -31772, 
-32767, -33753, -34728, 
-35693, -36647, -37589, 
-38521, -39440, -40347, 
-41243, -42125, -42995, 
-43852, -44695, -45525, 
-46340, -47142, -47930, 
-48702, -49460, -50203, 
-50931, -51643, -52339, 
-53019, -53683, -54331, 
-54963, -55577, -56175, 
-56755, -57319, -57864, 
-58393, -58903, -59395, 
-59870, -60326, -60763, 
-61183, -61583, -61965, 
-62328, -62672, -62997, 
-63302, -63589, -63856, 
-64103, -64331, -64540, 
-64729, -64898, -65047, 
-65176, -65286, -65376, 
-65446, -65496, -65526, 
-65536, -65526, -65496, 
-65446, -65376, -65286, 
-65176, -65047, -64898, 
-64729, -64540, -64331, 
-64103, -63856, -63589, 
-63302, -62997, -62672, 
-62328, -61965, -61583, 
-61183, -60763, -60326, 
-59870, -59395, -58903, 
-58393, -57864, -57319, 
-56755, -56175, -55577, 
-54963, -54331, -53683, 
-53019, -52339, -51643, 
-50931, -50203, -49460, 
-48702, -47930, -47142, 
-46340, -45525, -44695, 
-43852, -42995, -42125, 
-41243, -40347, -39440, 
-38521, -37589, -36647, 
-35693, -34728, -33753, 
-32767, -31772, -30767, 
-29752, -28729, -27696, 
-26655, -25606, -24550, 
-23486, -22414, -21336, 
-20251, -19160, -18064, 
-16961, -15854, -14742, 
-13625, -12504, -11380, 
-10252, -9120, -7986, 
-6850, -5711, -4571, 
-3429, -2287, -1143, 
0, 1143, 2287, 
3429, 4571, 5711, 
6850, 7986, 9120, 
10252, 11380, 12504, 
13625, 14742, 15854, 
16961, 18064, 19160, 
20251, 21336, 22414, 
23486, 24550, 25606, 
26655, 27696, 28729, 
29752, 30767, 31772, 
32767, 33753, 34728, 
35693, 36647, 37589, 
38521, 39440, 40347, 
41243, 42125, 42995, 
43852, 44695, 45525, 
46340, 47142, 47930, 
48702, 49460, 50203, 
50931, 51643, 52339, 
53019, 53683, 54331, 
54963, 55577, 56175, 
56755, 57319, 57864, 
58393, 58903, 59395, 
59870, 60326, 60763, 
61183, 61583, 61965, 
62328, 62672, 62997, 
63302, 63589, 63856, 
64103, 64331, 64540, 
64729, 64898, 65047, 
65176, 65286, 65376, 
65446, 65496, 65526, 
}; 
 
S16 pixelangle320[320] = { 
360, 358, 356, 354, 
353, 351, 349, 347, 
346, 344, 342, 340, 
339, 337, 335, 333, 
331, 329, 328, 326, 
324, 322, 320, 318, 
316, 314, 312, 311, 
309, 307, 305, 303, 
301, 299, 297, 295, 
293, 291, 289, 287, 
285, 283, 281, 279, 
277, 275, 273, 271, 
269, 266, 264, 262, 
260, 258, 256, 254, 
252, 249, 247, 245, 
243, 241, 239, 236, 
234, 232, 230, 228, 
225, 223, 221, 219, 
216, 214, 212, 210, 
207, 205, 203, 200, 
198, 196, 193, 191, 
189, 186, 184, 182, 
179, 177, 175, 172, 
170, 167, 165, 163, 
160, 158, 155, 153, 
150, 148, 146, 143, 
141, 138, 136, 133, 
131, 128, 126, 123, 
121, 118, 116, 113, 
111, 108, 106, 103, 
101, 98, 95, 93, 
90, 88, 85, 83, 
80, 78, 75, 72, 
70, 67, 65, 62, 
60, 57, 54, 52, 
49, 47, 44, 41, 
39, 36, 34, 31, 
28, 26, 23, 20, 
18, 15, 13, 10, 
7, 5, 2, 0, 
0, -2, -5, -7, 
-10, -13, -15, -18, 
-20, -23, -26, -28, 
-31, -34, -36, -39, 
-41, -44, -47, -49, 
-52, -54, -57, -60, 
-62, -65, -67, -70, 
-72, -75, -78, -80, 
-83, -85, -88, -90, 
-93, -95, -98, -101, 
-103, -106, -108, -111, 
-113, -116, -118, -121, 
-123, -126, -128, -131, 
-133, -136, -138, -141, 
-143, -146, -148, -150, 
-153, -155, -158, -160, 
-163, -165, -167, -170, 
-172, -175, -177, -179, 
-182, -184, -186, -189, 
-191, -193, -196, -198, 
-200, -203, -205, -207, 
-210, -212, -214, -216, 
-219, -221, -223, -225, 
-228, -230, -232, -234, 
-236, -239, -241, -243, 
-245, -247, -249, -252, 
-254, -256, -258, -260, 
-262, -264, -266, -269, 
-271, -273, -275, -277, 
-279, -281, -283, -285, 
-287, -289, -291, -293, 
-295, -297, -299, -301, 
-303, -305, -307, -309, 
-311, -312, -314, -316, 
-318, -320, -322, -324, 
-326, -328, -329, -331, 
-333, -335, -337, -339, 
-340, -342, -344, -346, 
-347, -349, -351, -353, 
-354, -356, -358, -360, 
}; 
 
S16 pixelangle304[304] = { 
360, 358, 356, 354, 
352, 350, 349, 347, 
345, 343, 341, 339, 
337, 335, 333, 332, 
330, 328, 326, 324, 
322, 320, 318, 316, 
314, 312, 310, 308, 
306, 304, 302, 300, 
297, 295, 293, 291, 
289, 287, 285, 283, 
281, 278, 276, 274, 
272, 270, 268, 265, 
263, 261, 259, 256, 
254, 252, 250, 247, 
245, 243, 241, 238, 
236, 234, 231, 229, 
227, 224, 222, 220, 
217, 215, 212, 210, 
208, 205, 203, 200, 
198, 195, 193, 191, 
188, 186, 183, 181, 
178, 176, 173, 171, 
168, 166, 163, 161, 
158, 155, 153, 150, 
148, 145, 143, 140, 
137, 135, 132, 130, 
127, 124, 122, 119, 
116, 114, 111, 108, 
106, 103, 100, 98, 
95, 92, 90, 87, 
84, 82, 79, 76, 
74, 71, 68, 65, 
63, 60, 57, 54, 
52, 49, 46, 44, 
41, 38, 35, 33, 
30, 27, 24, 22, 
19, 16, 13, 11, 
8, 5, 2, 0, 
0, -2, -5, -8, 
-11, -13, -16, -19, 
-22, -24, -27, -30, 
-33, -35, -38, -41, 
-44, -46, -49, -52, 
-54, -57, -60, -63, 
-65, -68, -71, -74, 
-76, -79, -82, -84, 
-87, -90, -92, -95, 
-98, -100, -103, -106, 
-108, -111, -114, -116, 
-119, -122, -124, -127, 
-130, -132, -135, -137, 
-140, -143, -145, -148, 
-150, -153, -155, -158, 
-161, -163, -166, -168, 
-171, -173, -176, -178, 
-181, -183, -186, -188, 
-191, -193, -195, -198, 
-200, -203, -205, -208, 
-210, -212, -215, -217, 
-220, -222, -224, -227, 
-229, -231, -234, -236, 
-238, -241, -243, -245, 
-247, -250, -252, -254, 
-256, -259, -261, -263, 
-265, -268, -270, -272, 
-274, -276, -278, -281, 
-283, -285, -287, -289, 
-291, -293, -295, -297, 
-300, -302, -304, -306, 
-308, -310, -312, -314, 
-316, -318, -320, -322, 
-324, -326, -328, -330, 
-332, -333, -335, -337, 
-339, -341, -343, -345, 
-347, -349, -350, -352, 
-354, -356, -358, -360, 
}; 
 
S16 pixelangle288[288] = { 
359, 358, 356, 354, 
352, 350, 348, 346, 
344, 342, 340, 338, 
336, 334, 332, 330, 
328, 326, 324, 322, 
319, 317, 315, 313, 
311, 309, 307, 305, 
302, 300, 298, 296, 
294, 291, 289, 287, 
285, 282, 280, 278, 
276, 273, 271, 269, 
266, 264, 262, 259, 
257, 255, 252, 250, 
248, 245, 243, 240, 
238, 235, 233, 231, 
228, 226, 223, 221, 
218, 216, 213, 211, 
208, 205, 203, 200, 
198, 195, 193, 190, 
187, 185, 182, 180, 
177, 174, 172, 169, 
166, 164, 161, 158, 
156, 153, 150, 147, 
145, 142, 139, 137, 
134, 131, 128, 125, 
123, 120, 117, 114, 
112, 109, 106, 103, 
100, 97, 95, 92, 
89, 86, 83, 80, 
78, 75, 72, 69, 
66, 63, 60, 58, 
55, 52, 49, 46, 
43, 40, 37, 34, 
31, 29, 26, 23, 
20, 17, 14, 11, 
8, 5, 2, 0, 
0, -2, -5, -8, 
-11, -14, -17, -20, 
-23, -26, -29, -31, 
-34, -37, -40, -43, 
-46, -49, -52, -55, 
-58, -60, -63, -66, 
-69, -72, -75, -78, 
-80, -83, -86, -89, 
-92, -95, -97, -100, 
-103, -106, -109, -112, 
-114, -117, -120, -123, 
-125, -128, -131, -134, 
-137, -139, -142, -145, 
-147, -150, -153, -156, 
-158, -161, -164, -166, 
-169, -172, -174, -177, 
-180, -182, -185, -187, 
-190, -193, -195, -198, 
-200, -203, -205, -208, 
-211, -213, -216, -218, 
-221, -223, -226, -228, 
-231, -233, -235, -238, 
-240, -243, -245, -248, 
-250, -252, -255, -257, 
-259, -262, -264, -266, 
-269, -271, -273, -276, 
-278, -280, -282, -285, 
-287, -289, -291, -294, 
-296, -298, -300, -302, 
-305, -307, -309, -311, 
-313, -315, -317, -319, 
-322, -324, -326, -328, 
-330, -332, -334, -336, 
-338, -340, -342, -344, 
-346, -348, -350, -352, 
-354, -356, -358, -359, 
}; 
 
S16 pixelangle272[272] = { 
359, 357, 355, 353, 
351, 349, 347, 345, 
343, 341, 339, 336, 
334, 332, 330, 328, 
326, 324, 321, 319, 
317, 315, 312, 310, 
308, 306, 303, 301, 
299, 296, 294, 292, 
289, 287, 285, 282, 
280, 277, 275, 273, 
270, 268, 265, 263, 
260, 258, 255, 253, 
250, 248, 245, 243, 
240, 237, 235, 232, 
230, 227, 224, 222, 
219, 217, 214, 211, 
208, 206, 203, 200, 
198, 195, 192, 189, 
187, 184, 181, 178, 
176, 173, 170, 167, 
164, 161, 159, 156, 
153, 150, 147, 144, 
141, 138, 136, 133, 
130, 127, 124, 121, 
118, 115, 112, 109, 
106, 103, 100, 97, 
94, 91, 88, 85, 
82, 79, 76, 73, 
70, 67, 64, 61, 
58, 55, 52, 49, 
46, 43, 39, 36, 
33, 30, 27, 24, 
21, 18, 15, 12, 
9, 6, 3, 0, 
0, -3, -6, -9, 
-12, -15, -18, -21, 
-24, -27, -30, -33, 
-36, -39, -43, -46, 
-49, -52, -55, -58, 
-61, -64, -67, -70, 
-73, -76, -79, -82, 
-85, -88, -91, -94, 
-97, -100, -103, -106, 
-109, -112, -115, -118, 
-121, -124, -127, -130, 
-133, -136, -138, -141, 
-144, -147, -150, -153, 
-156, -159, -161, -164, 
-167, -170, -173, -176, 
-178, -181, -184, -187, 
-189, -192, -195, -198, 
-200, -203, -206, -208, 
-211, -214, -217, -219, 
-222, -224, -227, -230, 
-232, -235, -237, -240, 
-243, -245, -248, -250, 
-253, -255, -258, -260, 
-263, -265, -268, -270, 
-273, -275, -277, -280, 
-282, -285, -287, -289, 
-292, -294, -296, -299, 
-301, -303, -306, -308, 
-310, -312, -315, -317, 
-319, -321, -324, -326, 
-328, -330, -332, -334, 
-336, -339, -341, -343, 
-345, -347, -349, -351, 
-353, -355, -357, -359, 
}; 
 
S16 pixelangle256[256] = { 
359, 357, 355, 353, 
351, 348, 346, 344, 
342, 339, 337, 335, 
333, 330, 328, 326, 
323, 321, 319, 316, 
314, 312, 309, 307, 
304, 302, 299, 297, 
294, 292, 289, 287, 
284, 282, 279, 277, 
274, 272, 269, 266, 
264, 261, 259, 256, 
253, 251, 248, 245, 
242, 240, 237, 234, 
231, 229, 226, 223, 
220, 218, 215, 212, 
209, 206, 203, 200, 
197, 195, 192, 189, 
186, 183, 180, 177, 
174, 171, 168, 165, 
162, 159, 156, 153, 
150, 147, 144, 141, 
138, 134, 131, 128, 
125, 122, 119, 116, 
113, 109, 106, 103, 
100, 97, 94, 90, 
87, 84, 81, 78, 
74, 71, 68, 65, 
61, 58, 55, 52, 
48, 45, 42, 39, 
35, 32, 29, 26, 
22, 19, 16, 13, 
9, 6, 3, 0, 
0, -3, -6, -9, 
-13, -16, -19, -22, 
-26, -29, -32, -35, 
-39, -42, -45, -48, 
-52, -55, -58, -61, 
-65, -68, -71, -74, 
-78, -81, -84, -87, 
-90, -94, -97, -100, 
-103, -106, -109, -113, 
-116, -119, -122, -125, 
-128, -131, -134, -138, 
-141, -144, -147, -150, 
-153, -156, -159, -162, 
-165, -168, -171, -174, 
-177, -180, -183, -186, 
-189, -192, -195, -197, 
-200, -203, -206, -209, 
-212, -215, -218, -220, 
-223, -226, -229, -231, 
-234, -237, -240, -242, 
-245, -248, -251, -253, 
-256, -259, -261, -264, 
-266, -269, -272, -274, 
-277, -279, -282, -284, 
-287, -289, -292, -294, 
-297, -299, -302, -304, 
-307, -309, -312, -314, 
-316, -319, -321, -323, 
-326, -328, -330, -333, 
-335, -337, -339, -342, 
-344, -346, -348, -351, 
-353, -355, -357, -359, 
}; 
 
S16 pixelangle240[240] = { 
359, 357, 354, 352, 
350, 347, 345, 343, 
340, 338, 335, 333, 
331, 328, 326, 323, 
321, 318, 316, 313, 
311, 308, 305, 303, 
300, 298, 295, 292, 
290, 287, 284, 282, 
279, 276, 273, 271, 
268, 265, 262, 259, 
257, 254, 251, 248, 
245, 242, 239, 236, 
234, 231, 228, 225, 
222, 219, 216, 213, 
210, 207, 203, 200, 
197, 194, 191, 188, 
185, 182, 179, 175, 
172, 169, 166, 163, 
159, 156, 153, 150, 
146, 143, 140, 137, 
133, 130, 127, 123, 
120, 117, 113, 110, 
106, 103, 100, 96, 
93, 90, 86, 83, 
79, 76, 72, 69, 
66, 62, 59, 55, 
52, 48, 45, 41, 
38, 34, 31, 27, 
24, 20, 17, 13, 
10, 6, 3, 0, 
0, -3, -6, -10, 
-13, -17, -20, -24, 
-27, -31, -34, -38, 
-41, -45, -48, -52, 
-55, -59, -62, -66, 
-69, -72, -76, -79, 
-83, -86, -90, -93, 
-96, -100, -103, -106, 
-110, -113, -117, -120, 
-123, -127, -130, -133, 
-137, -140, -143, -146, 
-150, -153, -156, -159, 
-163, -166, -169, -172, 
-175, -179, -182, -185, 
-188, -191, -194, -197, 
-200, -203, -207, -210, 
-213, -216, -219, -222, 
-225, -228, -231, -234, 
-236, -239, -242, -245, 
-248, -251, -254, -257, 
-259, -262, -265, -268, 
-271, -273, -276, -279, 
-282, -284, -287, -290, 
-292, -295, -298, -300, 
-303, -305, -308, -311, 
-313, -316, -318, -321, 
-323, -326, -328, -331, 
-333, -335, -338, -340, 
-343, -345, -347, -350, 
-352, -354, -357, -359, 
}; 
 
S16 pixelangle224[224] = { 
359, 356, 354, 351, 
349, 346, 344, 341, 
339, 336, 334, 331, 
328, 326, 323, 320, 
318, 315, 312, 309, 
307, 304, 301, 298, 
296, 293, 290, 287, 
284, 281, 278, 275, 
272, 269, 266, 263, 
260, 257, 254, 251, 
248, 245, 242, 239, 
236, 233, 230, 226, 
223, 220, 217, 213, 
210, 207, 204, 200, 
197, 194, 190, 187, 
184, 180, 177, 174, 
170, 167, 163, 160, 
156, 153, 149, 146, 
142, 139, 135, 132, 
128, 125, 121, 118, 
114, 110, 107, 103, 
99, 96, 92, 89, 
85, 81, 78, 74, 
70, 67, 63, 59, 
55, 52, 48, 44, 
41, 37, 33, 29, 
26, 22, 18, 14, 
11, 7, 3, 0, 
0, -3, -7, -11, 
-14, -18, -22, -26, 
-29, -33, -37, -41, 
-44, -48, -52, -55, 
-59, -63, -67, -70, 
-74, -78, -81, -85, 
-89, -92, -96, -99, 
-103, -107, -110, -114, 
-118, -121, -125, -128, 
-132, -135, -139, -142, 
-146, -149, -153, -156, 
-160, -163, -167, -170, 
-174, -177, -180, -184, 
-187, -190, -194, -197, 
-200, -204, -207, -210, 
-213, -217, -220, -223, 
-226, -230, -233, -236, 
-239, -242, -245, -248, 
-251, -254, -257, -260, 
-263, -266, -269, -272, 
-275, -278, -281, -284, 
-287, -290, -293, -296, 
-298, -301, -304, -307, 
-309, -312, -315, -318, 
-320, -323, -326, -328, 
-331, -334, -336, -339, 
-341, -344, -346, -349, 
-351, -354, -356, -359, 
}; 
 
S16 pixelangle208[208] = { 
359, 356, 353, 351, 
348, 345, 343, 340, 
337, 334, 331, 329, 
326, 323, 320, 317, 
314, 311, 308, 305, 
302, 299, 296, 293, 
290, 287, 284, 281, 
278, 274, 271, 268, 
265, 262, 258, 255, 
252, 248, 245, 242, 
238, 235, 232, 228, 
225, 221, 218, 214, 
211, 207, 204, 200, 
197, 193, 190, 186, 
182, 179, 175, 171, 
168, 164, 160, 157, 
153, 149, 145, 142, 
138, 134, 130, 126, 
122, 119, 115, 111, 
107, 103, 99, 95, 
91, 87, 84, 80, 
76, 72, 68, 64, 
60, 56, 52, 48, 
44, 40, 36, 32, 
28, 24, 20, 16, 
12, 8, 4, 0, 
0, -4, -8, -12, 
-16, -20, -24, -28, 
-32, -36, -40, -44, 
-48, -52, -56, -60, 
-64, -68, -72, -76, 
-80, -84, -87, -91, 
-95, -99, -103, -107, 
-111, -115, -119, -122, 
-126, -130, -134, -138, 
-142, -145, -149, -153, 
-157, -160, -164, -168, 
-171, -175, -179, -182, 
-186, -190, -193, -197, 
-200, -204, -207, -211, 
-214, -218, -221, -225, 
-228, -232, -235, -238, 
-242, -245, -248, -252, 
-255, -258, -262, -265, 
-268, -271, -274, -278, 
-281, -284, -287, -290, 
-293, -296, -299, -302, 
-305, -308, -311, -314, 
-317, -320, -323, -326, 
-329, -331, -334, -337, 
-340, -343, -345, -348, 
-351, -353, -356, -359, 
}; 
 
S16 pixelangle192[192] = { 
358, 356, 353, 350, 
347, 344, 341, 338, 
335, 332, 329, 326, 
323, 319, 316, 313, 
310, 307, 303, 300, 
297, 294, 290, 287, 
284, 280, 277, 273, 
270, 266, 263, 259, 
256, 252, 249, 245, 
242, 238, 234, 231, 
227, 223, 219, 216, 
212, 208, 204, 200, 
197, 193, 189, 185, 
181, 177, 173, 169, 
165, 161, 157, 153, 
149, 145, 141, 137, 
132, 128, 124, 120, 
116, 112, 107, 103, 
99, 95, 90, 86, 
82, 78, 73, 69, 
65, 60, 56, 52, 
47, 43, 39, 34, 
30, 26, 21, 17, 
13, 8, 4, 0, 
0, -4, -8, -13, 
-17, -21, -26, -30, 
-34, -39, -43, -47, 
-52, -56, -60, -65, 
-69, -73, -78, -82, 
-86, -90, -95, -99, 
-103, -107, -112, -116, 
-120, -124, -128, -132, 
-137, -141, -145, -149, 
-153, -157, -161, -165, 
-169, -173, -177, -181, 
-185, -189, -193, -197, 
-200, -204, -208, -212, 
-216, -219, -223, -227, 
-231, -234, -238, -242, 
-245, -249, -252, -256, 
-259, -263, -266, -270, 
-273, -277, -280, -284, 
-287, -290, -294, -297, 
-300, -303, -307, -310, 
-313, -316, -319, -323, 
-326, -329, -332, -335, 
-338, -341, -344, -347, 
-350, -353, -356, -358, 
}; 
 
S16 pixelangle176[176] = { 
358, 355, 352, 349, 
346, 342, 339, 336, 
332, 329, 326, 322, 
319, 315, 312, 308, 
305, 301, 298, 294, 
291, 287, 283, 280, 
276, 272, 268, 265, 
261, 257, 253, 249, 
245, 241, 237, 233, 
229, 225, 221, 217, 
213, 209, 205, 200, 
196, 192, 188, 183, 
179, 175, 170, 166, 
162, 157, 153, 148, 
144, 140, 135, 131, 
126, 121, 117, 112, 
108, 103, 99, 94, 
89, 85, 80, 75, 
71, 66, 61, 56, 
52, 47, 42, 38, 
33, 28, 23, 19, 
14, 9, 4, 0, 
0, -4, -9, -14, 
-19, -23, -28, -33, 
-38, -42, -47, -52, 
-56, -61, -66, -71, 
-75, -80, -85, -89, 
-94, -99, -103, -108, 
-112, -117, -121, -126, 
-131, -135, -140, -144, 
-148, -153, -157, -162, 
-166, -170, -175, -179, 
-183, -188, -192, -196, 
-200, -205, -209, -213, 
-217, -221, -225, -229, 
-233, -237, -241, -245, 
-249, -253, -257, -261, 
-265, -268, -272, -276, 
-280, -283, -287, -291, 
-294, -298, -301, -305, 
-308, -312, -315, -319, 
-322, -326, -329, -332, 
-336, -339, -342, -346, 
-349, -352, -355, -358, 
}; 
 
S16 pixelangle160[160] = { 
358, 354, 351, 347, 
344, 340, 337, 333, 
329, 326, 322, 318, 
314, 311, 307, 303, 
299, 295, 291, 287, 
283, 279, 275, 271, 
266, 262, 258, 254, 
249, 245, 241, 236, 
232, 228, 223, 219, 
214, 210, 205, 200, 
196, 191, 186, 182, 
177, 172, 167, 163, 
158, 153, 148, 143, 
138, 133, 128, 123, 
118, 113, 108, 103, 
98, 93, 88, 83, 
78, 72, 67, 62, 
57, 52, 47, 41, 
36, 31, 26, 20, 
15, 10, 5, 0, 
0, -5, -10, -15, 
-20, -26, -31, -36, 
-41, -47, -52, -57, 
-62, -67, -72, -78, 
-83, -88, -93, -98, 
-103, -108, -113, -118, 
-123, -128, -133, -138, 
-143, -148, -153, -158, 
-163, -167, -172, -177, 
-182, -186, -191, -196, 
-200, -205, -210, -214, 
-219, -223, -228, -232, 
-236, -241, -245, -249, 
-254, -258, -262, -266, 
-271, -275, -279, -283, 
-287, -291, -295, -299, 
-303, -307, -311, -314, 
-318, -322, -326, -329, 
-333, -337, -340, -344, 
-347, -351, -354, -358, 
}; 
 
S16 pixelangle144[144] = { 
358, 354, 350, 346, 
342, 338, 334, 330, 
326, 322, 317, 313, 
309, 305, 300, 296, 
291, 287, 282, 278, 
273, 269, 264, 259, 
255, 250, 245, 240, 
235, 231, 226, 221, 
216, 211, 205, 200, 
195, 190, 185, 180, 
174, 169, 164, 158, 
153, 147, 142, 137, 
131, 125, 120, 114, 
109, 103, 97, 92, 
86, 80, 75, 69, 
63, 58, 52, 46, 
40, 34, 29, 23, 
17, 11, 5, 0, 
0, -5, -11, -17, 
-23, -29, -34, -40, 
-46, -52, -58, -63, 
-69, -75, -80, -86, 
-92, -97, -103, -109, 
-114, -120, -125, -131, 
-137, -142, -147, -153, 
-158, -164, -169, -174, 
-180, -185, -190, -195, 
-200, -205, -211, -216, 
-221, -226, -231, -235, 
-240, -245, -250, -255, 
-259, -264, -269, -273, 
-278, -282, -287, -291, 
-296, -300, -305, -309, 
-313, -317, -322, -326, 
-330, -334, -338, -342, 
-346, -350, -354, -358, 
}; 
 
S16 pixelangle128[128] = { 
357, 353, 348, 344, 
339, 335, 330, 326, 
321, 316, 312, 307, 
302, 297, 292, 287, 
282, 277, 272, 266, 
261, 256, 251, 245, 
240, 234, 229, 223, 
218, 212, 206, 200, 
195, 189, 183, 177, 
171, 165, 159, 153, 
147, 141, 134, 128, 
122, 116, 109, 103, 
97, 90, 84, 78, 
71, 65, 58, 52, 
45, 39, 32, 26, 
19, 13, 6, 0, 
0, -6, -13, -19, 
-26, -32, -39, -45, 
-52, -58, -65, -71, 
-78, -84, -90, -97, 
-103, -109, -116, -122, 
-128, -134, -141, -147, 
-153, -159, -165, -171, 
-177, -183, -189, -195, 
-200, -206, -212, -218, 
-223, -229, -234, -240, 
-245, -251, -256, -261, 
-266, -272, -277, -282, 
-287, -292, -297, -302, 
-307, -312, -316, -321, 
-326, -330, -335, -339, 
-344, -348, -353, -357, 
}; 
 
S16 pixelangle112[112] = { 
356, 351, 346, 341, 
336, 331, 326, 320, 
315, 309, 304, 298, 
293, 287, 281, 275, 
269, 263, 257, 251, 
245, 239, 233, 226, 
220, 213, 207, 200, 
194, 187, 180, 174, 
167, 160, 153, 146, 
139, 132, 125, 118, 
110, 103, 96, 89, 
81, 74, 67, 59, 
52, 44, 37, 29, 
22, 14, 7, 0, 
0, -7, -14, -22, 
-29, -37, -44, -52, 
-59, -67, -74, -81, 
-89, -96, -103, -110, 
-118, -125, -132, -139, 
-146, -153, -160, -167, 
-174, -180, -187, -194, 
-200, -207, -213, -220, 
-226, -233, -239, -245, 
-251, -257, -263, -269, 
-275, -281, -287, -293, 
-298, -304, -309, -315, 
-320, -326, -331, -336, 
-341, -346, -351, -356, 
}; 
 
S16 pixelangle96[96] = { 
356, 350, 344, 338, 
332, 326, 319, 313, 
307, 300, 294, 287, 
280, 273, 266, 259, 
252, 245, 238, 231, 
223, 216, 208, 200, 
193, 185, 177, 169, 
161, 153, 145, 137, 
128, 120, 112, 103, 
95, 86, 78, 69, 
60, 52, 43, 34, 
26, 17, 8, 0, 
0, -8, -17, -26, 
-34, -43, -52, -60, 
-69, -78, -86, -95, 
-103, -112, -120, -128, 
-137, -145, -153, -161, 
-169, -177, -185, -193, 
-200, -208, -216, -223, 
-231, -238, -245, -252, 
-259, -266, -273, -280, 
-287, -294, -300, -307, 
-313, -319, -326, -332, 
-338, -344, -350, -356, 
}; 
 
S16 pixelangle80[80] = { 
354, 347, 340, 333, 
326, 318, 311, 303, 
295, 287, 279, 271, 
262, 254, 245, 236, 
228, 219, 210, 200, 
191, 182, 172, 163, 
153, 143, 133, 123, 
113, 103, 93, 83, 
72, 62, 52, 41, 
31, 20, 10, 0, 
0, -10, -20, -31, 
-41, -52, -62, -72, 
-83, -93, -103, -113, 
-123, -133, -143, -153, 
-163, -172, -182, -191, 
-200, -210, -219, -228, 
-236, -245, -254, -262, 
-271, -279, -287, -295, 
-303, -311, -318, -326, 
-333, -340, -347, -354, 
}; 
 
S16 pixelangle64[64] = { 
353, 344, 335, 326, 
316, 307, 297, 287, 
277, 266, 256, 245, 
234, 223, 212, 200, 
189, 177, 165, 153, 
141, 128, 116, 103, 
90, 78, 65, 52, 
39, 26, 13, 0, 
0, -13, -26, -39, 
-52, -65, -78, -90, 
-103, -116, -128, -141, 
-153, -165, -177, -189, 
-200, -212, -223, -234, 
-245, -256, -266, -277, 
-287, -297, -307, -316, 
-326, -335, -344, -353, 
}; 
 
